//
// Created by chizuru on 2025/9/2.
//

#pragma once
#include "ICommand.h"
#include "OperationResult.h"
#include <vector>
#include <iostream>
#include <memory>

namespace camera_link_bobcat {
    class Invoker {
    public:
        // execute commands in order; if any fails, undo executed commands in reverse order
        static OperationResult executeWithRollback(std::vector<std::unique_ptr<ICommand>> &cmds);
    };
} // camera_link_bobcat
